/* global chrome */

// // 添加规则（只会在扩展安装/更新时执行一次）
// chrome.runtime.onInstalled.addListener(() => {
//     chrome.declarativeNetRequest.updateDynamicRules({
//         removeRuleIds: [1], // 移除旧规则，用时将id值填入
//         addRules: [
//             {
//                 id: 1,
//                 priority: 1,
//                 action: {
//                   type: "block"
//                 },
//                 // action: {
//                 //     type: "redirect",
//                 //     redirect: {
//                 //         url: "http://127.0.0.1:3007/buy/one/further",
//                 //     },
//                 // },
//                 condition: {
//                     urlFilter: "https://www.gate.io/json_svr/query", // 使用正则配置多个
//                     resourceTypes: ["xmlhttprequest"],
//                 },
//             },
//             // 配置多个
//             // ,{
//             //   id: 2,
//             //   priority: 1,
//             //   action: {
//             //     type: "block"
//             //   },
//             //   condition: {
//             //     urlFilter: "https://www.gate.io/apiw/v2/another/endpoint", // 另一个接口
//             //     resourceTypes: ["xmlhttprequest"]
//             //   }
//             // }
//         ],
//     });
// });

import { post, get } from "@/http/http.js";
// post('https://dextec.cc/api/dex/news/page',{author: "",category: "1",current: 1,size: 3,source: "",status: 1,title: "",type: ""}).then((res) => {
//   console.log(res, 'https://dextec.cc/api/dex/news/page');

// })

chrome.runtime.onInstalled.addListener(() => {
  chrome.proxy.settings.set({
    value: {
      mode: "auto_detect",
    },
    scope: "regular"
  }, () => {
    console.log("代理已设置");
  });
})

// 监听消息以支持跨域请求
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  console.log(request, 'reqqqqqqqqqqqqqqq');
  // 其他 proxy 请求保持原样
  if (request.type === "proxy") {
    // chrome.storage.local.get('token', (data) => {
    // const token = data.token;
    // const headers = {
    //     // 'Authorization': `Bearer ${token}`,
    //     'Content-Type': 'application/json'
    // };
    if (request.method == 'GET') {
      get(request.url, request.body).then((res) => {
        console.log(res, 'getgetgethttps://www.dexte.pro/gate-api/gatenews/page');
        sendResponse(res);
      })
    } else {
      post(request.url, request.body).then((res) => {
        console.log(res, 'https://www.dexte.pro/gate-api/gatenews/page');
        sendResponse(res);
      })
    }
    

    // fetch('https://www.dextec.site' + request.url, {
    //     method: 'POST',
    //     headers: headers,
    //     body: JSON.stringify(request.body)
    // })
    //     .then(response => {
    //         if (!response.ok) {
    //             throw new Error(`HTTP error! status: ${response.status}`);
    //         }
    //         return response.json();
    //     })
    //     .then(data => {
    //         sendResponse(data);
    //     })
    //     .catch(error => {
    //         sendResponse({ error: error.message });
    //     });
    // });
    return true;
  }
  if (request.type === 'SHOW_NOTIFICATION') {
    chrome.notifications.create('', request.options);
    return true;
  }
});

// chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
//   console.log(request, 'reqqqqqqqqqqqqqqqqqqqqqq');
//   console.log(sender);
//   console.log(sendResponse);

//   if (request.action === "interceptRequest") {
//     console.log("拦截请求，URL：", request.url);
//     sendResponse({ success: true });
//   }
//   return true;
// });

// https://snssdk.gatedata.org/service/2/abtest_config/

chrome.webRequest.onBeforeRequest.addListener(
  (details) => {
    console.log(details);

    if (details.method === "POST") {
      // 检查是否有请求体内容
      if (details.requestBody && details.requestBody.raw) {
        details.requestBody.raw.forEach((buffer) => {
          console.log(buffer);

          // 确保它是 ArrayBuffer 类型
          if (buffer.bytes instanceof ArrayBuffer) {
            const str = new TextDecoder().decode(buffer.bytes);
            console.log("请求体内容：", JSON.parse(str));

          } else {
            console.error("请求体数据格式错误，无法解码：", buffer.bytes);
          }
        });
      }
    }
    return {}; // 继续请求
  },
  {
    urls: ["https://snssdk.gatedata.org/service/2/abtest_config/"],
    types: ["xmlhttprequest"]
  },
  ["requestBody"]
);


